System and method for supporting a plurality of access control list types for a file system in an operating system

ABSTRACT

System, method and computer program product for supporting a plurality of Access Control List types for a file system in an operating system in a data processing system. An Access Control List supporting system for managing access to a file system in a data processing system has at least one file system in an operating system of the data processing system, and an Access Control List management framework in the operating system and external to the at least one file system for managing access to the at least one file system. The Access Control List supporting system of the invention removes ACL management and access check-related functions from the at least one file system to an external Access Control List management framework, thus enabling an operating system to support a plurality of Access Control List types using the same Access Control List management framework and enabling new Access Control List types to be added to the operating system dynamically while the operating system is running.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates generally to access control in an operating system in a data processing system and, more particularly, to a system, method and computer program product for supporting a plurality of Access Control List types for a file system in an operating system.

2. Description of Related Art

An Access Control List (ACL) is used as a mechanism for determining the appropriate access rights to a given object. The ACL is a data structure, typically a table, containing entries that specify the rights of an individual or group to access specific system objects such as a program, a process or a file. Each accessible object contains an identifier to its ACL. The privileges or permissions determine specific access rights, such as whether a user can read from, write to or execute an object.

The ACL is a concept with several different implementations in various operating systems. Current operating systems support only one ACL type per file system instance or use a different mechanism for each ACL type. In an operating system that has multiple file systems supporting the same ACL type, each file system must have code to handle the ACL type on an individual basis.

NFS V4 is being adopted by most of the leading operating system providers to be the industry-wide standard protocol for network file sharing. As indicated above, an operating system typically supports only one ACL type. If it is desired to add one or more additional ACL types to an operating system, it is usually necessary to create a different mechanism to handle each additional ACL type.

It would, accordingly, be desirable to provide a system wide framework and method for supporting a plurality of ACL types for a file system in an operating system that requires only a single framework to handle the different ACL types.

SUMMARY OF THE INVENTION

The present invention provides a system, method and computer program product for supporting a plurality of Access Control List types for a file system in an operating system in a data processing system. An Access Control List supporting system for managing access to a file system in a data processing system has at least one file system in an operating system of the data processing system, and an Access Control List management framework in the operating system and external to the at least one file system for managing access to the at least one file system. The Access Control List supporting system of the invention removes ACL management and access check-related functions from the at least one file system to the external Access Control List management framework, thus enabling an operating system to support a plurality of Access Control List types using the same Access Control List management framework and enabling new Access Control List types to be added to the operating system dynamically while the operating system is running.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:

FIG. 1 is a pictorial representation of a data processing system in which the present invention may be implemented in accordance with a preferred embodiment of the present invention;

FIG. 2 is a block diagram of a data processing system in which the present invention may be implemented;

FIG. 3 is a block diagram that schematically illustrates an Access Control List management framework for managing access to a file system in an operating system in a data processing system in accordance with a preferred embodiment of the present invention; and

FIG. 4 is a flowchart that illustrates a method for supporting a plurality of Access Control List types for a file system in an operating system in a data processing system in accordance with a preferred embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

With reference now to the figures and in particular with reference to FIG. 1, a pictorial representation of a data processing system in which the present invention may be implemented is depicted in accordance with a preferred embodiment of the present invention. A computer 100 is depicted which includes system unit 102, video display terminal 104, keyboard 106, storage devices 108, which may include floppy drives and other types of permanent and removable storage media, and mouse 110. Additional input devices may be included with personal computer 100, such as, for example, a joystick, touchpad, touch screen, trackball, microphone, and the like. Computer 100 can be implemented using any suitable computer, such as an IBM eServer computer or IntelliStation computer, which are products of International Business Machines Corporation, located in Armonk, N.Y. Although the depicted representation shows a computer, other embodiments of the present invention may be implemented in other types of data processing systems, such as a network computer. Computer 100 also preferably includes a graphical user interface (GUI) that may be implemented by means of systems software residing in computer readable media in operation within computer 100.

With reference now to FIG. 2, a block diagram of a data processing system is shown in which the present invention may be implemented. Data processing system 200 is an example of a computer, such as computer 100 in FIG. 1, in which code or instructions implementing the processes of the present invention may be located. Data processing system 200 employs a peripheral component interconnect (PCI) local bus architecture. Although the depicted example employs a PCI bus, other bus architectures such as Accelerated Graphics Port (AGP) and Industry Standard Architecture (ISA) may be used. Processor 202 and main memory 204 are connected to PCI local bus 206 through PCI bridge 208. PCI bridge 208 also may include an integrated memory controller and cache memory for processor 202. Additional connections to PCI local bus 206 may be made through direct component interconnection or through add-in connectors. In the depicted example, local area network (LAN) adapter 210, small computer system interface (SCSI) host bus adapter 212, and expansion bus interface 214 are connected to PCI local bus 206 by direct component connection. In contrast, audio adapter 216, graphics adapter 218, and audio/video adapter 219 are connected to PCI local bus 206 by add-in boards inserted into expansion slots. Expansion bus interface 214 provides a connection for a keyboard and mouse adapter 220, modem 222, and additional memory 224. SCSI host bus adapter 212 provides a connection for hard disk drive 226, tape drive 228, and CD-ROM drive 230. Typical PCI local bus implementations will support three or four PCI expansion slots or add-in connectors.

An operating system runs on processor 202 and is used to coordinate and provide control of various components within data processing system 200 in FIG. 2. The operating system may be a commercially available operating system such as Windows XP, which is available from Microsoft Corporation. An object oriented programming system such as Java may run in conjunction with the operating system and provides calls to the operating system from Java programs or applications executing on data processing system 200. “Java” is a trademark of Sun Microsystems, Inc. Instructions for the operating system, the object-oriented programming system, and applications or programs are located on storage devices, such as hard disk drive 226, and may be loaded into main memory 204 for execution by processor 202.

Those of ordinary skill in the art will appreciate that the hardware in FIG. 2 may vary depending on the implementation. Other internal hardware or peripheral devices, such as flash read-only memory (ROM), equivalent nonvolatile memory, or optical disk drives and the like, may be used in addition to or in place of the hardware depicted in FIG. 2. Also, the processes of the present invention may be applied to a multiprocessor data processing system.

For example, data processing system 200, if optionally configured as a network computer, may not include SCSI host bus adapter 212, hard disk drive 226, tape drive 228, and CD-ROM 230. In that case, the computer, to be properly called a client computer, includes some type of network communication interface, such as LAN adapter 210, modem 222, or the like. As another example, data processing system 200 may be a stand-alone system configured to be bootable without relying on some type of network communication interface, whether or not data processing system 200 comprises some type of network communication interface. As a further example, data processing system 200 may be a personal digital assistant (PDA), which is configured with ROM and/or flash ROM to provide non-volatile memory for storing operating system files and/or user-generated data.

The depicted example in FIG. 2 and above-described examples are not meant to imply architectural limitations. For example, data processing system 200 also may be a notebook computer or hand held computer in addition to taking the form of a PDA. Data processing system 200 also may be a kiosk or a Web appliance.

The processes of the present invention are performed by processor 202 using computer implemented instructions, which may be located in a memory such as, for example, main memory 204, memory 224, or in one or more peripheral devices 226-230.

FIG. 3 is a block diagram that schematically illustrates an Access Control List management framework for managing access to a file system in an operating system in a data processing system in accordance with a preferred embodiment of the present invention. The Access Control List (ACL) management framework is generally designated by reference number 300, and is provided to manage access to files maintained in physical file system 302. ACL management framework 300 and physical file system 302 are incorporated in an operating system 304 which may be implemented as an operating system running on processor 202 in data processing system 200 illustrated in FIG. 2. Although only one file system is illustrated in FIG. 3, it should be understood that operating system 304 may contain a plurality of file systems, if desired.

An ACL is a data structure containing entries that specify the rights of an individual or group to access specific objects such as a file stored in physical file system 302. Each accessible file in physical file system 302 contains an identifier to its ACL, and the privileges or permissions determine specific access rights, such as whether a user can read from or write to a file.

Although there are several different implementations or types of ACLs, current operating systems support only one ACL type per file system or support a plurality of ACL types by using a different mechanism to support each ACL type. If it is desired to add additional ACL types to an operating system, a different mechanism must be provided to handle each additional ACL type.

The present invention provides a system and method for supporting a plurality of ACL types for a file system in an operating system in a data processing system that requires only a single framework to handle the different ACL types.

Referring back to FIG. 3, ACL management framework 300 includes a plurality of ACL engines 310 a, 310 b, . . . 310 n, each of which is specific to and supports a different ACL type. In particular, each ACL engine 310 a, 310 b, . . . 310 n, performs ACL management functions (ACL set and ACL get) that are specific to a particular ACL type.

ACL management framework 300 also includes ACL engine manager 312. ACL engine manager interfaces with each of the plurality of ACL engines 310 a, 310 b, . . . 310 n, as illustrated at 314, and with physical file system 302 as indicated at 316. ACL engine manager 312 handles overall management and access check-related functions that are conventionally handled by physical file system 302. In particular, when access to a file in physical file system 302 is sought by an individual or a group, the physical file system will contact the appropriate one of the plurality of ACL engines 310 a, 310 b, . . . 310 n, through ACL engine manager 312, which will then perform access checks using a generic set of access-check operation codes. In other words, with the present invention, ACL engine manager 312 performs all management, individual ACL engines 310 a, 310 b, . . . 310 n, perform the access checks, while the physical file system uses a generic set of access-check operation codes. With the present invention, accordingly, physical file system 302 is freed of ACL management and access check-related functions that are handled by ACL engine manager 312 and ACL engines 310 a, 310 b, . . . 310 n; and, as a result, physical file system 302 can provide support for multiple ACL types and enforce access validations for any ACL type at the various file access code points (such as open, read, write, etc.) uniformly without being concerned about ACL type-specific access checks.

In general, the present invention provides a framework for centralizing ACL implementation externally of the physical file system thus enabling uniform access control enforcement for one or more physical file systems in an operating system, and better service and support of a centralized code.

ACL management franework 300 can support any desired number of different ACL types. In addition, new ACL types can be easily added to the operating system dynamically using ACL management framework 300 to handle all the different types. In particular, ACL management framework 300 enables additional ACL types to be registered and started for a file system while the operating system is running and without the need of a reboot.

FIG. 4 is a flowchart that illustrates a method for supporting a plurality of Access Control List types for a file system in an operating system in a data processing system in accordance with a preferred embodiment of the present invention. The method is generally designated by reference number 400, and begins by providing at least one physical file system in an operating system of a data processing system (Step 402). An ACL management framework that supports a plurality of ACL types is also provided in the operating system external of the at least one physical file system to for managing access to the at least one file system (Step 404). The ACL management framework performs ACL management functions (ACL set and ACL get) that are specific to particular ACL types, and handles overall management and access check-related functions that are conventionally handled by the at least one physical file system. Any new ACL types are added to the operating system (Step 406), and the physical file system of the operating system then performs access checks for current or any added ACL types using the same generic set of access-check operation codes irrespective of ACL type (Step 408). The new ACL types are added to the operating system while the operating system is running and without having to reboot.

The present invention thus provides a system, method and computer program product for supporting a plurality of Access Control List types for a file system in an operating system in a data processing system. An Access Control List supporting system for managing access to a file system in a data processing system has at least one file system in an operating system of the data processing system, and an Access Control List management framework in the operating system and external to the at least one file system for managing access to the at least one file system. The Access Control List supporting system of the invention removes ACL management and access check-related functions from the at least one file system to the external Access Control List management framework, thus enabling an operating system to support a plurality of Access Control List types using the same Access Control List management framework and enabling new Access Control List types to be added to the operating system dynamically while the operating system is running.

It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media, such as a floppy disk, a hard disk drive, a RAM, CD-ROMs, DVD-ROMs, and transmission-type media, such as digital and analog communications links, wired or wireless communications links using transmission forms, such as, for example, radio frequency and light wave transmissions. The computer readable media may take the form of coded formats that are decoded for actual use in a particular data processing system.

The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. 

1. An Access Control List supporting system for managing access to a file system in a data processing system, comprising: at least one file system in an operating system of the data processing system; and an Access Control List management framework in the operating system and external to the at least one file system for managing access to the at least one file system.
 2. The system according to claim 1, wherein the Access Control List management framework includes a plurality of Access Control List engines, each Access Control List engine performing Access Control List management functions specific to a different Access Control List type.
 3. The system according to claim 2, wherein the Access Control List management functions performed by each Access Control List engine include Access Control List set and Access Control List get functions.
 4. The system according to claim 2, wherein the Access Control List management framework further includes an Access Control List manager for performing management and access check-related functions with respect to the at least one file system.
 5. The system according to claim 4, wherein the Access Control List manager interfaces with the plurality of Access Control List Engines and the at least one file system.
 6. The system according to claim 5, wherein the at least one file system contacts a type specific Access Control List engine through the Access Control List manager for performing access checks.
 7. The system according to claim 6, wherein the at least one file system performs access checks using a generic set of access-check operation codes.
 8. The system according to claim 1, wherein the at least one file system comprises a plurality of file systems.
 9. The system according to claim 1, wherein the at least one file system supports a plurality of Access Control List types, and uniformly enforces validations for each of the plurality of Access Control List types.
 10. The system according to claim 1, and further including a mechanism for adding at least one additional Access Control List type to the at least one file system while the operating system is running and without rebooting.
 11. A method, in a data processing system, for managing access to a file system, comprising: providing at least one file system in an operating system of the data processing system; and managing access to the at least one file system by an Access Control List management framework in the operating system and external to the at least one file system.
 12. The method according to claim 11, wherein managing access to the at least one file system includes: performing Access Control List management functions by a plurality of Access Control List engines, wherein each Access Control List engine is specific to a different Access Control List type.
 13. The method according to claim 12, wherein the Access Control List management functions performed by each Access Control List engine include Access Control List set and Access Control List get functions.
 14. The method according to claim 12, and further including: performing management and access check-related functions with respect to the at least one file system by an Access Control List manager.
 15. The method according to claim 14, and further including: interfacing the Access Control List manager with the plurality of Access Control List engines and the at least one file system.
 16. The method according to claim 15, wherein the at least one file system contacts a type specific Access Control List engine through the Access Control List manager for performing access checks.
 17. The method according to claim 16, wherein the at least one file system performs the access checks using a generic set of access-check operation codes.
 18. The method according to claim 11, wherein the at least one file system supports a plurality of Access Control List types, and uniformly enforces validations for each of the plurality of Access Control List types.
 19. The method according to claim 18, and further comprising: adding at least one additional Access Control List type to the at least one file system.
 20. The method according to claim 19, wherein adding at least one additional Access Control List type to the at least one file system, comprises: registering the at least one additional Access Control List type; and starting the at least one additional Access Control List type dynamically for a file system while the operating system is running and without rebooting.
 21. A computer program product in a computer readable medium for managing access to a file system, comprising: first instructions for providing at least one file system in an operating system in a data processing system; and second instructions for managing access to the at least one file system by an Access Control List management framework in the operating system and external to the at least one file system.
 22. The computer program product according to claim 21, wherein the second instructions includes: third instructions for performing Access Control List management functions by a plurality of Access Control List engines, wherein each Access Control List engine is specific to a different Access Control List type.
 23. The computer program product according to claim 23, wherein the second instructions further includes: fourth instructions for performing management and access check-related functions with respect to the at least one file system by an Access Control List manager.
 24. A data processing system having an operating system with at least one file system, comprising: a plurality of Access Control List types in the operating system, wherein each at least one file system includes at least one Access Control List type; a plurality of Access Control List engines, each Access Control List engine being associated with and performing Access Control List management functions for a different one of the plurality of Access Control List types; and an engine manager, external to the at least one file system, for interfacing between each at least one file system and each Access Control List engine associated with each different Access Control List type.
 25. The system according to claim 24, wherein the engine manager performs access check-related functions for each at least one file system using the at least one Access Control List type included in each at least one file system.
 26. A method, in a data processing system having an operating system with at least one file system, comprising: performing Access Control List management functions by a plurality of Access Control List engines, each Access Control List engine being associated with and performing Access Control List management functions for a different one of the plurality of Access Control List types, wherein each at least one file system includes at least one Access Control List type; and interfacing, with an engine manager external to the at least one file system, between each at least one file system and each Access Control List engine associated with each different Access Control List type.
 27. The method according to claim 26, wherein the engine manager performs access check-related functions for each at least one file system using the at least one Access Control List type included in each at least one file system.
 28. A computer program product in a computer readable medium for managing access to at least one file system in an operating system in a data processing system, comprising: first instructions for performing Access Control List management functions by a plurality of Access Control List engines, each Access Control List engine being associated with and performing Access Control List management functions for a different one of a plurality of Access Control List types, wherein each at least one file system includes at least one Access Control List type; and second instructions for interfacing, with an engine manager external to the at least one file system, between each at least one file system and each Access Control List engine associated with each different Access Control List type.
 29. The computer program product according to claim 28, and further including: third instructions for the engine manager to perform access check-related functions for each at least one file system using the at least one Access Control List type included in each at least one file system
 30. A data processing system having at least one file system in an operating system of the data processing system, comprising: means, external to the at least one file system, for managing access to each at least one file system, a separate Access Control List engine for performing Access Control List management functions for each of a plurality of Access Control List types; and means for performing access checks for a given one of the at least one file system by utilizing a generic set of access check operation codes to a given Access Control List engine for accessing a given file system associated with a given Access control List type, wherein the same generic set of access check operation codes is utilized for each Access Control List engine.
 31. A method, in a data processing system having an operating system with at least one file system, comprising: managing, externally of the at least one file system, access to each of the at least one file system, wherein each at least one file system includes at least one of a plurality of different Access Control List types; and performing access checks for a given one of the at least one file system by utilizing a generic set of access check operation codes to a given Access Control List engine for accessing a given file system associated with a given Access Control List type, wherein there is a separate Access Control List engine for each different Access Control List type, and wherein the same generic set of access check operation codes is utilized for each Access Control List engine when the Access Control List engine is needed to perform an access check.
 32. A method, in a data processing system, comprising: registering at least one Access Control List type of a plurality of Access Control List types for at least one file system in an operating system of the data processing system; starting the at least one registered Access Control List type dynamically for a file system while the operating system is running and without rebooting, thereby providing support for the plurality of Access Control List types; and enforcing access validations for each Access Control List type using a generic set of access check operation codes. 